package com.mvvm.start.lib_login.mvvm.v.activity

import com.alibaba.android.arouter.facade.annotation.Route
import com.gyf.immersionbar.ImmersionBar
import com.mvvm.start.base.base.BaseActivity
import com.mvvm.start.base.utils.CommonUtils
import com.mvvm.start.base.utils.ktsetOnClickListener
import com.mvvm.start.base.utils.toast
import com.mvvm.start.common.constant.RouteUrl
import com.mvvm.start.lib_login.databinding.ActivityLoginBinding
import com.mvvm.start.lib_login.mvvm.m.LoginRegisteredRepository
import com.mvvm.start.lib_login.mvvm.vm.LoginViewModle
import kotlinx.coroutines.*

/**
 * @author lmy
 * @功能: 登录界面
 * @Creat 12/21/20 4:01 PM
 * @Compony 465008238@qq.com
 */


@Route(path = RouteUrl.LoginLoginActivity)
class LoginActivity : BaseActivity<LoginViewModle, ActivityLoginBinding>() {
    override fun initStyle() {
        ImmersionBar.with(this)
            .statusBarDarkFont(true)   //状态栏字体是深色，不写默认为亮色
            .fitsSystemWindows(true)    //解决状态栏和布局重叠问题，任选其一，默认为false，当为true时一定要指定statusBarColor()，不然状态栏为透明色，还有一些重载方法
            .init()
    }

    override fun initView() {
        viewBinding.apply {
            ktsetOnClickListener(btUnbound, ivBack) {
                when (this) {
                    btUnbound -> {
                        if (etAccountVc.text.toString().isNullOrEmpty()) {
                            "请输入账户".toast()
                            return@ktsetOnClickListener
                        }
                        if (etPwdVc.text.toString().isNullOrEmpty()) {
                            "请输入密码".toast()
                            return@ktsetOnClickListener
                        }
                        mViewModel.submitLogin(
                            etAccountVc.text.toString(),
                            etPwdVc.text.toString()
                        )
                    }
                    ivBack -> {
                        finish()
                    }
                }
            }

        }
    }

    override fun initData() {
    }

    override fun initObserve() {
        mViewModel.apply {
            isshowProgress.observe(this@LoginActivity, {
                if (it) {
                    showProgress()
                } else {
                    hideProgress()
                }
            })
            userBean.observe(this@LoginActivity, {
                CommonUtils.savaUserBen(it)
                finish()
            })

        }
    }
}